package com.dianxin.smartpark.service.park;

import com.chinatelecom.response.common.CommonResponseBody;
import com.dianxin.smartpark.dao.qo.park.SmartParkCarQO;
import com.dianxin.smartpark.service.vo.park.DevicePullDataCarVo;
import com.dianxin.smartpark.service.vo.park.SmartParkCarVO;
import com.dianxin.smartpark.service.vo.park.SmartParkUserCarVO;

import java.util.List;

/**
 * 车辆管理接口
 * 
 * @author chenjiasong
 * @date 2021-07-28
 */
public interface SmartParkCarService
{
    /**
     * 查询车辆管理
     * 
     * @param smartParkCarqo 车辆管理
     * @return 车辆管理
     */
    CommonResponseBody<SmartParkCarVO> selectSmartParkCar(SmartParkCarQO smartParkCarqo);

    /**
     * 查询车辆管理列表
     * 
     * @param smartParkCarqo 车辆管理
     * @return 车辆管理集合
     */
    CommonResponseBody<List<SmartParkCarVO>> selectSmartParkCarList(SmartParkCarQO smartParkCarqo);

    /**
     * 查询设备人员车辆列表
     *
     * @param devicePullDataCarVo 车辆管理
     * @return 车辆人员管理集合
     */
    CommonResponseBody<List<SmartParkUserCarVO>> selectSmartParkUserCarList(DevicePullDataCarVo devicePullDataCarVo) throws Exception;

    /**
     * 查询设备人员车辆列表 通过车牌
     *
     * @param devicePullDataCarVo 车辆管理
     * @return 车辆人员管理集合
     */
    CommonResponseBody<SmartParkUserCarVO> selectSmartParkUserCarListByCar(DevicePullDataCarVo devicePullDataCarVo) throws Exception;

    /**
     * 新增车辆管理
     * 
     * @param smartParkCarvo 车辆管理
     * @return 结果
     */
    CommonResponseBody<Boolean> insertSmartParkCar(SmartParkCarVO smartParkCarvo) throws Exception;

    /**
     * 修改车辆管理
     * 
     * @param smartParkCarvo 车辆管理
     * @return 结果
     */
    CommonResponseBody<Boolean> updateSmartParkCar(SmartParkCarVO smartParkCarvo);

    /**
     * 删除车辆管理信息
     * 
     * @param vo 车辆管理
     * @return 结果
     */
    CommonResponseBody<Boolean> deleteSmartParkCar(SmartParkCarVO vo) throws Exception;
}
